import java.util.LinkedList;
import java.util.Queue;

/**
 * 用队列实现栈
 */

public class MyStack {
    private Queue<Integer> q1;
    private Queue<Integer> q2;
    public MyStack() {
        q1 = new LinkedList();
        q2 = new LinkedList();
    }

    public void push(int x) {
        //入栈元素直接入q2
        q2.offer(x);
        //然后将q1中的所有元素一次入队到q2中 实现FILO
        while (!q1.isEmpty()){
            q2.offer(q1.poll());
        }
        Queue<Integer> tmp;
        tmp = q1;
        q1 = q2;
        q2 = tmp;
    }

    public int pop() {
        //出栈的时候直接将q2的队列pull
        return q1.poll();
    }

    public int top() {
        return q1.peek();
    }

    public boolean empty() {
        return q1.isEmpty();
    }
}
